package br.com.sap.modelo;

import java.util.Date;

import br.com.sap.modelo.enums.EnumSituacao;
import br.com.sap.modelo.enums.EnumTipo;
import br.com.sap.utils.annotations.PropriedadesCampo;


public class Usuario extends EntidadePermanente {

	@PropriedadesCampo(nomeColuna="nome", campoObrigatorio=true, campoAbsoluto=true, campoLimpar=true, tamanhoMax = 70, tamanhoMin = 2)
	private String nome;
	@PropriedadesCampo(nomeColuna="sobrenome", campoObrigatorio=true, tamanhoMax = 200, tamanhoMin = 2)
	private String sobrenome;
	@PropriedadesCampo(nomeColuna="email", campoUnico=true, campoObrigatorio=true)
	private String email;
	@PropriedadesCampo(nomeColuna="senha", campoObrigatorio=true, tamanhoMax=12, tamanhoMin = 6)
	private String senha;
	@PropriedadesCampo(nomeColuna="senhacriptografada")
	private String senhacriptografada;
	@PropriedadesCampo(nomeColuna="codigoativacao")
	private String codigoativacao;
	@PropriedadesCampo(nomeColuna="primeiro_login") 
	private Boolean primeiroLogin;
	@PropriedadesCampo(nomeColuna="telefone", campoObrigatorio=true, campoLimpar=true, tamanhoMax=15, tamanhoMin=8)
	private String telefone;
	@PropriedadesCampo(nomeColuna="celular", campoObrigatorio=true, campoLimpar=true, tamanhoMax=15, tamanhoMin=8)
	private String celular;
	@PropriedadesCampo(nomeColuna="situacao")
	private EnumSituacao situacao;
	@PropriedadesCampo(nomeColuna="tipo")
	private EnumTipo tipo;
	@PropriedadesCampo(nomeColuna="sexo", campoObrigatorio=true)
	private Integer sexo;
	@PropriedadesCampo(nomeColuna="datadenascimento", campoObrigatorio=true)
	private Date datadenascimento;
	@PropriedadesCampo(nomeColuna="estado_id", campoObrigatorio=true)
	private Estado estado;
	@PropriedadesCampo(nomeColuna="cidade_id", campoObrigatorio=true)
	private Cidade cidade;	
	@PropriedadesCampo(nomeColuna="endereco", campoObrigatorio=true)
	private String endereco;
	@PropriedadesCampo(nomeColuna="bairro", campoObrigatorio=true)
	private String bairro;
	@PropriedadesCampo(nomeColuna="cep", campoObrigatorio=true, campoLimpar=true)
	private String cep;
	
	@PropriedadesCampo(campoNaoPersistido=true)
	private final String nomeTabela = "usuario";
	
	
	public String getCodigoativacao() {
		return codigoativacao;
	}


	public void setCodigoativacao(String codigoativacao) {
		this.codigoativacao = codigoativacao;
	}
	
	public String getNome() {
		return nome;
	}


	public void setNome(String nome) {
		this.nome = nome;
	}


	public String getSobrenome() {
		return sobrenome;
	}


	public void setSobrenome(String sobrenome) {
		this.sobrenome = sobrenome;
	}


	public Integer getSexo() {
		return sexo;
	}


	public void setSexo(Integer sexo) {
		this.sexo = sexo;
	}


	public String getSenha() {
		return senha;
	}


	public void setSenha(String senha) {
		this.senha = senha;
	}
	
	public String getSenhacriptografada() {
		return senhacriptografada;
	}


	public void setSenhacriptografada(String senhacriptografada) {
		this.senhacriptografada = senhacriptografada;
	}


	public Boolean isPrimeiroLogin() {
		return primeiroLogin;
	}


	public void setPrimeiroLogin(boolean primeiroLogin) {
		this.primeiroLogin = primeiroLogin;
	}


	public String getEmail() {
		return email;
	}


	public void setEmail(String email) {
		this.email = email;
	}


	public String getTelefone() {
		return telefone;
	}


	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}


	public String getCelular() {
		return celular;
	}


	public void setCelular(String celular) {
		this.celular = celular;
	}


	public Date getDatadenascimento() {
		return datadenascimento;
	}


	public void setDatadenascimento(Date datadenascimento) {
		this.datadenascimento = datadenascimento;
	}
	
	public Estado getEstado() {
		return estado;
	}


	public void setEstado(Estado estado) {
		this.estado = estado;
	}
	
	public Cidade getCidade() {
		return cidade;
	}


	public void setCidade(Cidade cidade) {
		this.cidade = cidade;
	}


	public String getEndereco() {
		return endereco;
	}


	public void setEndereco(String endereco) {
		this.endereco =endereco;
	}


	public String getBairro() {
		return bairro;
	}


	public void setBairro(String bairro) {
		this.bairro = bairro;
	}


	public String getCep() {
		return cep;
	}


	public void setCep(String cep) {
		this.cep = cep;
	}
	public EnumSituacao getSituacao() {
		return situacao;
	}


	public void setSituacao(EnumSituacao situacao) {
		this.situacao = situacao;
	}


	public EnumTipo getTipo() {
		return tipo;
	}


	public void setTipo(EnumTipo tipo) {
		this.tipo = tipo;
	}


	@Override
	public String getNomeTabela() {
		return nomeTabela;
	}

}
